﻿Create PROCEDURE [dbo].[proc_rptTotalGruposProdutosRequisicao_O1]
(
	@NumeroRequisicao bigint
)
AS
BEGIN

	SET NOCOUNT ON
	DECLARE @Err int

;WITH cte
 AS 
(
	SELECT rl.IdRefeicaoContratada, gp.CodGrupoProduto, gp.Nome, gp.CodGrupoProdutoPai, rl.Quantidade * rl.PrecoCusto Total
		FROM RequisicoesLinha rl
			inner join Produtos p on p.IdProduto = rl.IdProduto
 				inner join GruposProdutos gp on gp.CodGrupoProduto = p.CodGrupoProduto
 	where rl.numeroRequisicao = 29
 				
 	union all
 	
 	select cte.IdRefeicaoContratada, gp1.CodGrupoProduto, gp1.Nome, gp1.CodGrupoProdutoPai, cte.Total
 		from GruposProdutos gp1 
 			inner join cte on cte.CodGrupoProdutoPai = gp1.CodGrupoProduto
 )
 
 SELECT IdRefeicaoContratada, CodGrupoProduto, Nome, CodGrupoProdutoPai, sum(Total) as Total
   FROM cte
 where CodGrupoProdutoPai is null
 GROUP BY IdRefeicaoContratada, CodGrupoProduto, Nome, CodGrupoProdutoPai
 
	SET @Err = @@Error

	RETURN @Err
END